﻿/***********************************************
  [className] CPdfRptBaCamOperBase
  [func]      pdf报表球机检测操作基类(函数已实现,有定制化则创子类重写函数)
  [author]    WeiXiaoYu
  [date]      2025/02/19 15:00
  [log]       初次建立
[Modification Log]
Vers            By            Notes
************************************************/

#ifndef CPdfRptBaCamOperBase_H
#define CPdfRptBaCamOperBase_H

#include <QObject>
#include "CPdfRptBase.h"
#include <QPrinter>
class CPdfRptBaCamOperBase  : public QObject
{
	Q_OBJECT

public:
	CPdfRptBaCamOperBase(CPdfRptTool *pPdfRptTool, QObject *parent = nullptr);
	~CPdfRptBaCamOperBase();

	/***************************************************************
	* @brief     函数功能:绘制球机检测综述表格
	* @input     dStartRow|绘制起始行
	* @input     dStartCol|绘制起始列
	* @input     dataInfo|报表数据集合
	* @input     painter|QPainter对象
	* @input     printer|QPrinter对象
	* @output    sErrMsg|错误描述
	* @return    bool |成功返回true，失败返回false
	* @note
	* @author    WeiXiaoYu
	* @time      2025-02-19 13:30
	* @Modification Log]
	 Vers            By            Notes
	**************************************************************/
	virtual bool drawBaCamOverviewForm(double &dStartRow, double &dStartCol, CAllPdfRptDataInfo &dataInfo, QPainter &painter, QPrinter &printer, QString &sErrMsg);

	/***************************************************************
	* @brief     函数功能:绘制球机所有报警详情
	* @input     dStartRow|绘制起始行
	* @input     dStartCol|绘制起始列
	* @input     dataInfo|报表数据集合
	* @input     painter|QPainter对象
	* @input     printer|QPrinter对象
	* @output    sErrMsg|错误描述
	* @return    bool |成功返回true，失败返回false
	* @note
	* @author    WeiXiaoYu
	* @time      2025-02-19 13:30
	* @Modification Log]
	 Vers            By            Notes
	**************************************************************/
	virtual bool drawBaCamAllAlmDes(double &dStartRow, double &dStartCol, CAllPdfRptDataInfo &dataInfo, QPainter &painter, QPrinter &printer, QString &sErrMsg);

	/***************************************************************
	* @brief     函数功能:绘制单个球机报警详情(不包含表头)
	* @input     dStartRow|绘制起始行
	* @input     dStartCol|绘制起始列
	* @input     nAlmIdex|报警序号
	* @input     sglAlmInfo|球机单个报警数据
	* @input     painter|QPainter对象
	* @input     printer|QPrinter对象
	* @output    sErrMsg|错误描述
	* @return    bool |成功返回true，失败返回false
	* @note
	* @author    WeiXiaoYu
	* @time      2025-02-19 13:30
	* @Modification Log]
	 Vers            By            Notes
	**************************************************************/
	virtual bool draBaCamSingAlmDes(double &dStartRow, double &dStartCol, int nAlmIdex, CPdfBaCamSglAlmInfo &sglAlmInfo, QPainter &painter, QPrinter &printer, QString &sErrMsg);

	/***************************************************************
	* @brief     函数功能:绘制球机报警详情的表头
	* @input     dStartRow|绘制起始行
	* @input     dStartCol|绘制起始列
	* @input     painter|QPainter对象
	* @input     printer|QPrinter对象
	* @output    sErrMsg|错误描述
	* @return    bool |成功返回true，失败返回false
	* @note
	* @author    WeiXiaoYu
	* @time      2025-02-19 13:30
	* @Modification Log]
	 Vers            By            Notes
	**************************************************************/
	virtual bool drawBaCamAlmDesHeader(double &dStartRow, double &dStartCol, QPainter &painter, QPrinter &printer, QString &sErrMsg);

private:
	CPdfRptTool *m_pPdfRptTool = nullptr;//工具类指针
};
#endif
